package cn.com.view;

import cn.com.action.UserAction;

import javax.swing.*;
import java.awt.*;

/**
 * @author ：khc
 * @date ：Created in 2021/12/20 16:56
 * @description：
 * @modified By：
 * @version: $
 */
public class LoginFrame extends JPanel {
    private JFrame f;//主框架 （教学楼）   JPanel教室
    //定义两个标签
    private JLabel userLabel;
    private JLabel passLabel;
    //定义文本框
    private JTextField username;
    //定义密码框
    private JPasswordField password;
    //定义两个按钮
    private JButton login;
    private JButton cancel;

    public JFrame getF() {
        return f;
    }

    public JTextField getUsername() {
        return username;
    }

    public JPasswordField getPassword() {
        return password;
    }

    //在构造方法中实例化对像(初始化)
    public LoginFrame(){
        //实例化两个标签
        userLabel = new JLabel("用户名");
        passLabel = new JLabel("密码");
        //实例文本框
        username = new JTextField(10);
        password = new JPasswordField(10);
        //实例化按钮
        login = new JButton("登录");
        cancel = new JButton("取消");
        //设置按钮的名字
        login.setActionCommand("login");
        cancel.setActionCommand("cancel");
        //实例化事件处理类
        UserAction userAction = new UserAction(this);
        //给按钮注册事件
        login.addActionListener(userAction);
        cancel.addActionListener(userAction);

        //设置教室的布局
        this.setLayout(null);//由自己设置
        //设置标签的布局
        userLabel.setBounds(30,100,100,30);
        passLabel.setBounds(30,140,100,30);
        //设置文本框布局
        username.setBounds(140,100,100,30);
        //设置密码框布局
        password.setBounds(140,140,100,30);
        //设置按钮布局
        login.setBounds(70,205,70,30);
        cancel.setBounds(180,205,70,30);
        //添加到面板中
        this.add(userLabel);
        this.add(username);
        this.add(passLabel);
        this.add(password);
        this.add(login);
        this.add(cancel);
        //实例化主框架
        f = new JFrame("系统登录");
        //设置参数
        //设置大小
        f.setSize(300,300);
        //关闭界面时同时关闭程序代码
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置主界面在中间显示
        f.setLocationRelativeTo(null);
        //不能改变大小
        f.setResizable(false);
        //添加面板
        f.getContentPane().add(this);
        //显示主界面
        f.setVisible(true);
    }
    //在面板上画图片
    @Override
    protected void paintComponent(Graphics g) {
       //创建图片对像，加载指定的图片
        ImageIcon img = new ImageIcon("src/image/LoginFormBG.jpg");
        //在指定的位置画图片
        g.drawImage(img.getImage(),0,0,this.getWidth(),this.getHeight(),null);
    }

    //main
    public static void main(String args[]){

        new LoginFrame();

        try {
            //设置界面风格与当前的操作系统相同
            UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
            e.printStackTrace();
        }

    }
}
